<?php

namespace app\index\controller\gupiao;

use app\index\controller\Base;
use think\Db;

/**
 * 股票管理控制器
 */
class Gupiao extends Base
{

	/**
	 * 股票列表 -- 管理员页面
     * URL :index/gupiao.gupiao/lists 
	 * @return [type] [description]
	 */
    public function lists()
    {
    	// 管理员权限验证
    	if($this->admin != 1){
    		return json([
	                'code'  => 401,
	                'dest'  => '权限不足'
	            ]);
    	}

    	$page       =input('page')  ? input('page')  : 1;                                   // 页码
        $pageSize   =input('limit') ? input('limit') : config('paginate')['list_rows'];     // 每页显示条数

        // 12小时内为最新
        $ago_12h = time()-12*60*60;

        $list=Db('gupiao')
            ->order('enlist desc')
            ->paginate(array('list_rows'=>$pageSize,'page'=>$page))
            ->toArray();
        if( $list['total']>0){
            foreach ($list['data'] as $key => $value) {
                $list['data'][$key]['create_time']      = date("Y-m-d H:i:s",$value['create_time']);
                $list['data'][$key]['update_time']      = date("Y-m-d H:i:s",$value['update_time']);

                if($value['last_live_time']>$ago_12h){
                    $list['data'][$key]['is_new']       = 1;
                }else{
                    $list['data'][$key]['is_new']       = 0;
                }
            }
        }
        return json([
                'code'  => 200,
                'dest'  => 'success',
                'count' => $list['total'],
                'data'  => $list['data']
            ]);


    }


    /**
     * 添加股票
     * URL :index/gupiao.gupiao/gupiaoAdd
     * @return [type] [description]
     */
    public function gupiaoAdd()
    {

    	// 管理员权限验证
    	if($this->admin != 1){
    		return json([
	                'code'  => 401,
	                'dest'  => '权限不足'
	            ]);
    	}
        
        $params['name']         = trim(input('name'));
        $params['short_name']   = input('short_name');
        $params['code']         = input('code');
        $params['price']        = input('price');
        $params['is_recomm']    = input('is_recomm');
        $params['is_show']      = input('is_show',1);
        $params['create_time']  = time();
        $params['update_time']  = time();

        if($params['name'] == null || $params['short_name'] == null || $params['code'] == null){
            return json([
                    'code'  => 400,
                    'dest'  => '参数不完整'
                ]);
        }

        // 股票验证
        $check = Db("gupiao")->where("name",trim(input('name')))->find();
        if($check){
            return json([
                'code'  => 400,
                'dest'  => '股票已存在，不可重复添加'
            ]);
        }

        $re = Db("gupiao")->insert($params);
        if($re){
            return json([
                    'code'  => 200,
                    'dest'  => '成功'
                ]);
        }

        else{
            return json([
                    'code'  => 400,
                    'dest'  => '添加失败'
                ]);
        }
    }



    /**
     * 股票信息
     * URL :index/gupiao.gupiao/info
     */
    public function info()
    {
        $id = input('id');
        if(!$id){
            return json([
                    'code'  => 400,
                    'dest'  => '参数不完整'
                ]);
        }

        $info = Db('gupiao')->where('id',$id)->find();
        return json([
                    'code'  => 200,
                    'dest'  => '成功',
                    'data'  => $info
                ]);
    }



    /**
     * 编辑股票
     * URL :index/gupiao.gupiao/gupiaoEdit
     * @return [type] [description]
     */
    public function gupiaoEdit()
    {
        if($this->admin != 1){
            return json([
                'code'  => 401,
                'dest'  => '权限不足'
            ]);
        }
        $params = [];
        input('name')       == null || $params['name']          = input('name'); 
        input('short_name') == null || $params['short_name']    = input('short_name'); 
        input('code')       == null || $params['code']          = input('code');
        input('price')      == null || $params['price']         = input('price'); 
        input('is_recomm')  == null || $params['is_recomm']     = input('is_recomm'); 
    	input('is_show')    == null || $params['is_show']       = input('is_show');
    	$params['update_time'] = time();
        $id = input('id');
        $re = Db('gupiao')->where('id',$id)->update($params);
        if($re){

        	// 修改点评价格
        	if(isset($params['price'])){
        		$live_id = Db("gupiao")->where('id',$id)->value('live_id');
	        	if($live_id>0){
	        		Db("lives")->where('id',$live_id)->update(['price'=>$params['price']]);
	        	}
        	}

            return json([
                'code'  => 200,
                'dest'  => '编辑成功'
            ]);

        }
        else{
            return json([
                'code'  => 401,
                'dest'  => '网络异常'
            ]);
        }

    }



    /**
     * 是删除股票
     * URL :index/gupiao.gupiao/show
     * @return [type] [description]
     */
    public function show()
    {
        if($this->admin != 1){
            return json([
                'code'  => 401,
                'dest'  => '权限不足'
            ]);
        }
        $id         = input('id');
        $re         = Db('gupiao')->where('id',$id)->update(['is_show'=>0]);
        if($re){
            return json([
                'code'  => 200,
                'dest'  => '成功'
            ]);
        }
        else{
            return json([
                'code'  => 400,
                'dest'  => '网络错误'
            ]);
        }
    }




    /**
     * 是否推荐   暂时没有使用
     * URL :index/gupiao.gupiao/recomm
     * @return [type] [description]
     */
    public function recomm()
    {
    	// 管理员权限验证
    	if($this->admin != 1){
    		return json([
	                'code'  => 401,
	                'dest'  => '权限不足'
	            ]);
    	}

        $id         = input('id'); 
        $is_recomm  = input('is_recomm');

        $re = Db('gupiao')->where('id',$id)->update(['is_recomm'=>$is_recomm]); 
        if($re){
            return json([
                    'code'  => 200,
                    'dest'  => '成功'
                ]);
        }else{
            return json([
                    'code'  => 400,
                    'dest'  => '网络错误'
                ]);
        }
    }



    /**
     * 新建点评
     * URL :index/gupiao.gupiao/statrtLives
     * @return [type] [description]
     */
    public function statrtLives()
    {
        if($this->admin != 1){
            return json([
                'code'  => 401,
                'dest'  => '权限不足'
            ]);
        }

        $gp_info = Db('gupiao')->where('id',input('id'))->find();

        if(!$gp_info){
            return json([
                    'code'  => 400,
                    'dest'  => '股票信息不存在'
                ]);
        }

        // 当前时间
        $newTime = time();

        // 新建直播
        // $params['title']        = "【".date('Y-m-d',time())."】".$gp_info['name'].'点评';
        $params['uid']          = $this->uid;
        $params['cover_pic']    = WEB_SITE."/gupiao/images/live_cover.jpg";
        $params['author']       = $this->username;
        $params['gupiao_id']    = input('id');
        $params['price']        = $gp_info['price'];
        $params['begin_time']   = $newTime;
        $params['create_time']  = $newTime;
        $params['update_time']  = $newTime;
        $params['is_recomm']    = input('is_recomm');

        $live_id = Db('lives')->insertGetId($params);

        if($live_id>0){

            // 修改股票的 “最近点评时间” 和 状态为“点评中”
            Db('gupiao')->where('id',input('id'))->update(['last_live_time'=>$newTime,'live_state'=>1,'live_id'=>$live_id]);

            // 修改以前的点评状态为结束状态
            Db("lives")->where("gupiao_id",input('id'))->where('id','neq',$live_id)->update(['state'=>1,'end_time'=>time()]);

            // 前端直接跳转直播间页面
            return json([
                    'code'      => 200,
                    'dest'      => '创建成功',
                    'live_id'   => $live_id
                ]);
        }else{
            return json([
                    'code'  => 400,
                    'dest'  => '网络错误'
                ]);
        }
    }


    /**
     * 继续点评
     * URL :index/gupiao.gupiao/continu
     * @return [type] [description]
     * */
    public function continu(){

        if($this->admin != 1){
            return json([
                'code'  => 401,
                'dest'  => '权限不足'
            ]);
        }

        $id = input('id');

        if(count($id) > 0){

            $where=([
                'gupiao_id' => $id,
                 'state'    => 0
            ]);

            $live_id = Db::name('lives')
                -> where($where)
                -> field('id')
                -> find();
            if($live_id){

                // 前端直接跳转直播间页面
                return json([
                    'code'      => 200,
                    'dest'      => '继续直播',
                    'live_id'   => $live_id
                ]);
            } else {
                return json([
                    'code'      => 400,
                    'dest'      => '不存在',
                ]);
            }

        } else {
            return json([
                'code'      => 401,
                'dest'      => '网络异常',
            ]);
        }
    }



}
